home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dcstdedt.tex < prev    next >
Text File  |  1994-04-12  |  8KB  |  260 lines

  1. % Generating MF-files for DC/EC fonts              Version 1.1 / 22.3.1992
  2. %
  3. %  Running TeX with this file as an input results in a lot of
  4. %  Metafont font driver files (dcr5.mf, dcr6.mf, ..). The files
  5. %  which should be generated are marked in the following macro
  6. %  \FontsToBeGenerated. For each font there has to be an entry
  7. %  with the pt sizes the font should be generate with. Additionally
  8. %  in the heading \tablevalues all used pt sizes have to be mentioned,
  9. %  just to get an fine printout.
  10. %
  11. %  Furthermore there is a batch file which can be customized for the
  12. %  Metafont batch run.
  13. %
  14. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  15. %
  16. %  please change only here:
  17. %
  18. \long\def\FontsToBeGenerated{
  19.  
  20.      \tablevalues       ( 5 6 7 8 9 10 12 17.28[17] )
  21.  
  22.      \makefont dcr      ( 5 6 7 8 9 10 12 17.28[17] )
  23.      \makefont dcsl     ( 5 6 7 8 9 10 12 17.28[17] )
  24.      \makefont dcfib    (       8 9 10 12           )
  25.      \makefont dcbxsl   ( 5 6 7 8 9 10 12           )
  26.      \makefont dcbx     ( 5 6 7 8 9 10 12           )
  27.      \makefont dcb      ( 5 6 7 8 9 10 12 17.28[17] )
  28.      \makefont dcdunh   ( 5 6 7 8 9 10 12 17.28[17] )
  29.      \makefont dctt     (       8 9 10 12           )
  30.      \makefont dcvtt    (       8 9 10 12           )
  31.      \makefont dcsltt   (       8 9 10 12           )
  32.      \makefont dcss     (       8 9 10 12 17.28[17] )
  33.      \makefont dcssi    (       8 9 10 12 17.28[17] )
  34.      \makefont dcssbx   (         9 10 12 17.28[17] )
  35. %    \makefont dcssdc   (           10              )
  36. %    \makefont dcssq    (       8                   )
  37. %    \makefont dcssqi   (       8                   )
  38.      \makefont dcff     (           10              )
  39.      \makefont dcti     (     7 8 9 10 12 17.28[17] )
  40.      \makefont dcitt    (       8 9 10 12 17.28[17] )
  41.      \makefont dcu      (     7 8 9 10 12 17.28[17] )
  42.      \makefont dcfi     (           10              )
  43.      \makefont dcbxti   (           10 12 17.28[17] )
  44.      \makefont dccsc    (           10 12 17.28[17] )
  45.      \makefont dctcsc   (           10 12 17.28[17] )
  46.  
  47. }
  48. % If a font with a fraction, e.g. "7.5", should be generated
  49. % and the file name is not allowed to contain a period, an
  50. % optional file name part can be specified.
  51. %
  52. %      7.5[7h]
  53. %
  54. %      result in - may be - "dcr7h.mf" and an entry of "gensize:=7.5;"
  55. %      (The new value has to be specified in the \tablevalues-line too!
  56. %
  57. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  58. %
  59. %  The Batch file entries   ( #1 contains the fontname )
  60. %
  61. %   should be of the following form:
  62. %
  63. %    \def\BatchOutput{\BatchLine{...}%
  64. %                          ...
  65. %                     \BatchLine{...}}
  66. %
  67. %
  68. %  preset value, change \BatchOutput if you like ....
  69. %
  70. \def\BatchOutput#1{
  71.      \BatchLine{mf "&plain \string\mode:=oce; input #1"}
  72. }
  73. %
  74. %   File naming conventions:
  75. %
  76. \def\BatchFileName{mfbatch.bat}
  77. %
  78. %
  79. \def\MetafontFileExtension{.mf}
  80. %
  81. \def\modedef{} % e.g.  \def\modedef{\string\mode:=hplaser;}
  82. %
  83. %
  84. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  85. %
  86. % please  n o  changes from here, thanks !
  87. %
  88. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  89. %
  90. %
  91. % (Avoiding inspecting the macros (sigh!)
  92. %
  93. %   Norbert Schwarz, Dezember 1990
  94. %
  95. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  96. \magnification\magstep1
  97. \overfullrule=0pt
  98. %\tracingonline1
  99. %\tracingcommands=1
  100. %\tracingmacros=1
  101. % some token handling
  102. \let\EA\expandafter
  103. \def\JoinToks#1=(#2+#3){#1=\EA\EA\EA{\EA\the\EA#2\the#3}}
  104. \def\UpToHere{\relax}
  105. \def\IgnoreRest#1#2\UpToHere{#1}
  106. \def\IgnoreFirst#1#2\relax\UpToHere{#2}
  107. \def\First#1{\EA\IgnoreRest\the#1{}\UpToHere}
  108. \def\FirstOf#1{\EA\EA\EA{\EA\IgnoreRest\the#1{}\UpToHere}}
  109. \def\MoveFirst(#1to#2){#2\FirstOf#1}
  110. \def\Rest#1{\EA\IgnoreFirst\the#1\relax\UpToHere}
  111. \def\RestOf#1{\EA\EA\EA{\EA\IgnoreFirst\the#1\relax\UpToHere}}
  112. \def\MoveRest(#1to#2){#2=\RestOf{#1}}
  113. % borrowed from p. 132 in N.Schwarz, Introduction to TeX (some advertising ..)
  114.  
  115. \newtoks\Basis
  116. \newtoks\Table
  117. \def\storetoks#1{\toks0={#1}\JoinToks\Table=(\Table+\toks0)}
  118. \Table={}
  119. %
  120. \newwrite \batchoutput
  121. \newwrite \fontoutput
  122. \def\today{\ifcase\month\or
  123.     January\or Februar\or March\or April\or May\or June\or
  124.     July\or August\or September\or October\or November\or December\fi,
  125.     \number\day,
  126.     \space\number\year}
  127.  
  128. \def\BatchLine#1{\immediate\write\batchoutput{#1}}
  129. \immediate\openout\batchoutput=\BatchFileName
  130.  
  131. \def\empty{}
  132. \def\minus{-}
  133. \def\blank{ }
  134. \def\singlefont#1 {%
  135.         \def\fontsize{#1}%\message{<#1>}%
  136.         \ifx\fontsize\minus\let\next\relax
  137.         \else
  138.             \ifx\fontsize\empty\let\next\singlefont
  139.             \else
  140.                 \ifx\fontsize\blank\let\next\singlefont
  141.                 \else
  142.                     \let\next\dofont
  143.           \fi\fi\fi
  144.         \next}
  145.  
  146. \def\doentry{\MoveFirst(\Workbase to\Htok)%
  147.              \Workbase=\RestOf\Workbase
  148.              \edef\doou{\the\Htok}%
  149.              \ifx\doou\fontsize
  150.                  \def\dooU{\storetoks{\hfill $\bullet$\hfill&}}%
  151.                  \let\weiter\dooU
  152.              \else
  153.                  \def\weiter{\storetoks{~\hfill&}\doentry}%
  154.              \fi\weiter}
  155.  
  156.  
  157. \def\singletablevalue#1 {%
  158.         \def\fontsize{#1}%
  159.         \ifx\fontsize\blank\let\next\singletablevalue
  160.         \else
  161.                 \ifx\minus\fontsize\let\next\relax
  162.                 \else\let\next\dotablevalue\fi
  163.         \fi
  164.         \next}
  165.  
  166. \newtoks\Htok
  167. \newtoks\Workbase
  168. \def\dotablevalue{\edef\dooo{\Htok={{\fontsize}}}%
  169.         \dooo
  170.         \EA\storetoks\EA{\fontsize&}%
  171.         \JoinToks\Basis=(\Basis+\Htok)\singletablevalue}
  172.  
  173. \def\tablevalues(#1){\storetoks{\bf Fonts &}\singletablevalue#1 -
  174.         \storetoks{\cr}}
  175.  
  176. \def\makefont #1 (#2){\JoinToks\Workbase=(\Basis+\Basis)%
  177.         \myc=0\immediate\write16{}%
  178.         \edef\fontnamebody{#1}%
  179.         \def\dostoretoks{\storetoks{#1 &}}\dostoretoks
  180.          \singlefont #2 - \storetoks{\cr}}
  181.  
  182. \def~{\ifdim\dimen0>0pt
  183.         \message{\number\dimen0}%
  184.         \global\advance\dimen0 by -5.25pt
  185.         \message{ }\fi}
  186.  
  187. \newcount\myc
  188. \def\extraspaces{\setbox0=\hbox{\tt\fontname}%
  189. \dimen0=78.75pt
  190. \advance\dimen0 by -\wd0\relax
  191.         \advance\myc by 1
  192.         \ifnum \myc=5
  193.         \immediate\write16{}%
  194.         \myc=0 \fi}
  195.  
  196.  
  197. \def\dofonttest#1[#2]#3\nothing{%
  198. \def\fontsize{#2}%
  199. \ifx\fontsize\empty
  200.         \def\fontsizename{#1}%
  201.         \def\fontsize{#1}%
  202. \else
  203.         \def\fontsize{#1}%
  204.         \def\fontsizename{#2}%
  205. \fi}
  206. \def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont}
  207.  
  208. {\catcode`\%=11
  209. \catcode`\|=14
  210. \gdef\Dofont{|
  211.   \edef\fontname{\fontnamebody\fontsizename\MetafontFileExtension}|
  212.   \edef\dowrite{|
  213.   \immediate\openout \fontoutput = \fontname|
  214.   \immediate\write
  215.      \fontoutput {% This is \fontname\space
  216.      in text format as of \today}|
  217.   \immediate\write \fontoutput {if unknown dxbase: input dxbase fi;}|
  218.   \immediate\write \fontoutput {}|
  219.   \immediate\write \fontoutput {\modedef}|
  220.   \immediate\write \fontoutput {gensize:=\fontsize;}|
  221.   \immediate\write \fontoutput {generate \fontnamebody}|
  222.   \immediate\closeout \fontoutput|
  223.   \BatchOutput{\fontnamebody\fontsizename}
  224.   \message{\fontname\blank}|\extraspaces~~~~~~~~~~~|
  225. }\dowrite\singlefont}}
  226. \immediate\write16{generated mf-files:}
  227. \immediate\write16{-------------------}
  228.  
  229. \nopagenumbers
  230.  
  231. \def\minimumbox#1{\setbox0=\hbox{#1}%
  232.         \ifdim\wd0>15pt \box0\else \hbox to 15pt{\hfil
  233.         \box0\hfil}\fi}
  234. \storetoks{\hrule
  235. \medskip
  236. \centerline{Overview DC/EC - Standard font set}
  237. \medskip
  238. \hrule
  239. \bigskip
  240. \noindent The following table describes the generated {*.mf} files which
  241. are needed for the setup of the standard DC/EC-font set.
  242. \bigskip
  243. \bigskip
  244. $$\vbox\bgroup\nointerlineskip\halign\bgroup#\hfil\quad&&\strut
  245.         \quad\minimumbox{#}\cr
  246. \noalign{\medskip}}
  247.  
  248.  
  249.  
  250. %\tracingonline1
  251. %\tracingmacros2
  252. %\tracingcommands1
  253.  
  254. \FontsToBeGenerated
  255.  
  256. \storetoks{\egroup\egroup$$}
  257.  
  258. \the\Table
  259. \end
  260.